
package br.com.siriema;

import br.com.siriema.beans.Aeroporto;
import br.com.siriema.beans.Voo;
import br.com.siriema.tad.Vetor;

public class Programa {

    public Vetor vetor = new Vetor();
    public String caminho = "";
    Aeroporto origemVoo;

    public void cadastraAeroporto(String cidade, String codigo) {
        Aeroporto a = new Aeroporto();
        a.setCidade(cidade);
        a.setCodigo(codigo);
        vetor.add(a);
    }

    public void cadatraVoo(int numVoo, String codigoOrigem, String codigoDestino) {
        Aeroporto origem = getAeroporto(codigoOrigem);
        Aeroporto destino = getAeroporto(codigoDestino);
        origem.addVoo(new Voo(numVoo, origem, destino));
    }

    public Aeroporto getAeroporto(String codigo) {
        for (Aeroporto a : vetor.getAeroportos()) {
            if (a != null)
                if (a.getCodigo().equals(codigo))
                    return a;
        }
        return null;
    }

    /*
     * Metodo para procurar o voo
     * Cara, acho que temos que implementar uma funcao recursiva nesse metodo
     * agora ja é 1:36 da manhã já to sem criatividade e vo começa estuda calculo :S
     * ve se tem alguma ideia, tenta fazer durante a tarde e depois da prova
     * agente tenta termina saporra kkkkkk flww abras;
     */
    public void procuraVoo(String codigoOrigem, String codigoDestino, int maxConexoes) {
        origemVoo = getAeroporto(codigoOrigem);
        
        Voo v = origemVoo.getVoos().first();
        for (int i = 0; i < origemVoo.getVoos().size(); i++) {
            caminho = caminho + " (" + v.getCodigo() + ")" + v.getOrigem().getCodigo() + " - " + v.getDestino().getCodigo();
            if (v.getDestino().getCodigo().equals(codigoDestino)) {
                System.out.println(caminho);
            } else {
                caminho += ",";
            }
            v = v.getProximo();
        }
    }

}
